package com.meevle.model {
	
	import com.adobe.cairngorm.model.IModelLocator;
	import com.meevle.vo.*;
	
	import flash.media.Microphone;
	
	import mx.collections.ArrayCollection;
	
	[Bindable]
	public class StudioModelLocator implements IModelLocator {
	
		private static var instance:StudioModelLocator;

		public function StudioModelLocator(enforcer:SingletonEnforcer) {
		if (enforcer == null) {
				throw new Error( "You Can Only Have One StudioModelLocator" );
			}
		}

		public static function getInstance() : StudioModelLocator {
			if (instance == null) {
				instance = new StudioModelLocator( new SingletonEnforcer );
			}
			return instance;
		}

		// DEFINE YOUR VARIABLES HERE	
		public var currentSet:SetVO;
		public var currentSlots:ArrayCollection = new ArrayCollection();
		public var recordedSlot:SlotVO;
		
		public var isRecording:Boolean = false;
		public var isUploading:Boolean = false;
		public var inputDevice:Microphone;
		
		// DEFINE YOUR CONSTANTS HERE
		
	}
}

// Utility Class to Deny Access to Constructor
class SingletonEnforcer {}